home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / program / asm32.zip / E32.ZIP / MERGE.ASM < prev    next >
Assembly Source File  |  1996-01-18  |  967b  |  60 lines

  1. ; MERGE.ASM for E32 - Copyright (C) 1994 Douglas Herr
  2. ;  all rights reserved
  3.  
  4. include    model.inc
  5.  
  6. public    merge
  7. extrn    open_space:near
  8. extrn    fileloadfar:near
  9. extrn    memcopy:near
  10. extrn    error:near
  11. extrn    edit_filename:near
  12.  
  13. fname    equ    [ebp-64]
  14.  
  15. include    dataseg.inc
  16. extrn    cursor:dword
  17. extrn    dirty_bits:byte
  18. extrn    file_read_error:byte
  19. mrg_mes    db 'Merge: ',0
  20. @curseg    ends
  21.  
  22. include    codeseg.inc
  23. merge    proc    near
  24.     enter    64,0
  25.     mov    byte ptr fname,0
  26.     lea    esi,mrg_mes
  27.     call    edit_filename
  28.     cmp    ax,27        ; ESC key?
  29.     je    short exit    ;  done if so
  30.  
  31.     lea    edx,fname
  32.     call    fileloadfar
  33.     jnc    short m0
  34.     lea    edx,file_read_error
  35.     call    error
  36.     clc
  37.     jmp    short exit
  38. m0:
  39.     push    ebx
  40.     push    eax
  41.     call    open_space    ; ret: ES = filesel
  42.     pop    ecx        ; sizeof new file
  43.     pop    ebx        ; BX = new file selector
  44.     xor    esi,esi
  45.     mov    edi,cursor
  46.  
  47.     push    ds
  48.     mov    ds,bx
  49.     call    memcopy
  50.     pop    ds
  51.     sys    RelMem
  52.     or    dirty_bits,10000001b
  53. exit:
  54.     leave
  55.     ret
  56. merge    endp
  57.  
  58. @curseg    ends
  59.     end
  60.